#include<iostream>
using namespace std;
const int N = 55,M=N*N;
int g[N][N];
typedef pair<int, int> PII;
#define x first
#define y second
PII q[M];
bool st[N][N];
int n,m;

int bfs(int sx,int sy)
{
    int hh=0,tt=-1;
    q[++tt]={sx,sy};
    st[sx][sy]=true;
    int area=0;
    int dx[]={0,-1,0,1},dy[]={-1,0,1,0};
    while(tt>=hh)
    {
        PII t=q[hh++];
        area++;
        for(int i=0;i<4;i++){
            int a=t.x+dx[i],b=t.y+dy[i];
            if(g[t.x][t.y]>>i&1)continue;
            if(a<1||a>n||b<1||b>m)continue;
            if(st[a][b])continue;
            st[a][b]=true;
            q[++tt]={a,b};
        }
    }
    return area;
}

int main()
{
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            cin>>g[i][j];
        }
    }
    int area=0;
    int cnt=0;
    for(int i=1;i<=n;i++){
        for(int j=1;j<=m;j++){
            if(!st[i][j]){
                area=max(area,bfs(i,j));
                cnt++;
            }
        }
    }
    cout<<cnt<<endl;
    cout<<area;
    return 0;
}
